<html>
<head><meta charset="utf-8"><title>Albin&#x27;s thesis and presentation(s?) · t-compiler/wg-polonius · Zulip Chat Archive</title></head>
<h2>Stream: <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/index.html">t-compiler/wg-polonius</a></h2>
<h3>Topic: <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Albin&#x27;s.20thesis.20and.20presentation(s.3F).html">Albin&#x27;s thesis and presentation(s?)</a></h3>

<hr>

<base href="https://rust-lang.zulipchat.com">

<head><link href="https://rust-lang.github.io/zulip_archive/style.css" rel="stylesheet"></head>

<a name="167062650"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Albin%27s%20thesis%20and%20presentation%28s%3F%29/near/167062650" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanda Stjerna <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Albin&#x27;s.20thesis.20and.20presentation(s.3F).html#167062650">(Jun 01 2019 at 08:36)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> Ok, so I have a question of formalism. We have this (* reads off of back of hand *) <a href="/user_uploads/4715/zGaEEQNLHHJWRCyJ1LtAwZsX/pasted_image.png" target="_blank" title="pasted_image.png">subtyping rule</a> . But our analysis takes places into account. How do we formulate that? Should that be part of the rule as well? Also, I know the types should probably be some sort of generic parameters as well.</p>
<div class="message_inline_image"><a href="/user_uploads/4715/zGaEEQNLHHJWRCyJ1LtAwZsX/pasted_image.png" target="_blank" title="subtyping rule"><img src="/user_uploads/4715/zGaEEQNLHHJWRCyJ1LtAwZsX/pasted_image.png"></a></div>



<a name="167068044"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Albin%27s%20thesis%20and%20presentation%28s%3F%29/near/167068044" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanda Stjerna <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Albin&#x27;s.20thesis.20and.20presentation(s.3F).html#167068044">(Jun 01 2019 at 11:15)</a>:</h4>
<p>Also, the analysis is both contest-sensitive (which I take to mean "respects function boundaries") and flow-sensitive (which I take to mean "analyses per program point"), right? I get my definitions from <a href="http://doi.acm.org/10.1145/1480881.1480911" target="_blank" title="http://doi.acm.org/10.1145/1480881.1480911">http://doi.acm.org/10.1145/1480881.1480911</a></p>



<a name="167068668"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Albin%27s%20thesis%20and%20presentation%28s%3F%29/near/167068668" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Albin&#x27;s.20thesis.20and.20presentation(s.3F).html#167068668">(Jun 01 2019 at 11:32)</a>:</h4>
<p>I don't believe it is context sensitive in the usual sense, because it is intra-procedural (not inter-procedural).</p>



<a name="167068680"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Albin%27s%20thesis%20and%20presentation%28s%3F%29/near/167068680" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Albin&#x27;s.20thesis.20and.20presentation(s.3F).html#167068680">(Jun 01 2019 at 11:33)</a>:</h4>
<p>That said, formulating Polonius as a type system <em>is</em> a bit tricky. You may want to check out the work that <span class="user-mention" data-user-id="127262">@Aaron Weiss</span> has been doing for some inspiration in what that might look like.</p>



<a name="167068723"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Albin%27s%20thesis%20and%20presentation%28s%3F%29/near/167068723" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Albin&#x27;s.20thesis.20and.20presentation(s.3F).html#167068723">(Jun 01 2019 at 11:34)</a>:</h4>
<p>(I'll fish out a link at some point, or perhaps someone else will supply it)</p>



<a name="167068726"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Albin%27s%20thesis%20and%20presentation%28s%3F%29/near/167068726" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Albin&#x27;s.20thesis.20and.20presentation(s.3F).html#167068726">(Jun 01 2019 at 11:34)</a>:</h4>
<p>Certainly Polonius is flow-sensitive</p>



<a name="167068732"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Albin%27s%20thesis%20and%20presentation%28s%3F%29/near/167068732" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Albin&#x27;s.20thesis.20and.20presentation(s.3F).html#167068732">(Jun 01 2019 at 11:34)</a>:</h4>
<blockquote>
<p>I don't believe it is context sensitive in the usual sense, because it is intra-procedural (not inter-procedural).</p>
</blockquote>
<p>I guess I think this is more of a N/A than anything else. The user kind of gives us, in the form of function signatures, the "summary" of the effects of our callees.</p>



<a name="167068744"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Albin%27s%20thesis%20and%20presentation%28s%3F%29/near/167068744" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Albin&#x27;s.20thesis.20and.20presentation(s.3F).html#167068744">(Jun 01 2019 at 11:35)</a>:</h4>
<blockquote>
<p>That said, formulating Polonius as a type system <em>is</em> a bit tricky. You may want to check out the work that <span class="user-mention silent" data-user-id="127262">Aaron Weiss</span> has been doing for some inspiration in what that might look like.</p>
</blockquote>
<p>the basic idea though is that you have an environment that is changing as you move through the control flow</p>



<a name="167068746"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Albin%27s%20thesis%20and%20presentation%28s%3F%29/near/167068746" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Albin&#x27;s.20thesis.20and.20presentation(s.3F).html#167068746">(Jun 01 2019 at 11:35)</a>:</h4>
<p>your subtyping rule had no environment at all, that doesn't work</p>



<a name="167068790"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Albin%27s%20thesis%20and%20presentation%28s%3F%29/near/167068790" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Albin&#x27;s.20thesis.20and.20presentation(s.3F).html#167068790">(Jun 01 2019 at 11:36)</a>:</h4>
<p>I feel like if this is going to be part of your thesis it's...probably out of scope</p>



<a name="167068793"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Albin%27s%20thesis%20and%20presentation%28s%3F%29/near/167068793" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Albin&#x27;s.20thesis.20and.20presentation(s.3F).html#167068793">(Jun 01 2019 at 11:36)</a>:</h4>
<p>That is, I would probably try to formulate polonius more in terms of a static analysis than a type system</p>



<a name="167216415"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Albin%27s%20thesis%20and%20presentation%28s%3F%29/near/167216415" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Weiss <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Albin&#x27;s.20thesis.20and.20presentation(s.3F).html#167216415">(Jun 03 2019 at 18:19)</a>:</h4>
<p>Answering <span class="user-mention" data-user-id="116009">@nikomatsakis</span>'s call for a link: the latest version of the paper is available <a href="https://aaronweiss.us/pubs/draft19-oxide.pdf" target="_blank" title="https://aaronweiss.us/pubs/draft19-oxide.pdf">on my website</a>, but there's a bunch of ongoing changes that have started in the (unreleased and not-very-human-readable) tech report first. So, if there's not an urgent need to look at this stuff, there ought to be a new version on my website (and arXiv) in a little over a month.</p>



<a name="167230568"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Albin%27s%20thesis%20and%20presentation%28s%3F%29/near/167230568" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanda Stjerna <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Albin&#x27;s.20thesis.20and.20presentation(s.3F).html#167230568">(Jun 03 2019 at 20:50)</a>:</h4>
<p><span class="user-mention" data-user-id="127262">@Aaron Weiss</span> Thank you! I have skimmed the draft of your Oxide paper, in fact it's one of the first ones I read for my background section, but I haven't nearly digested it yet. The type theory is far above my head, but I think explaining that is one of the things my subject reviewer is good for :)</p>



<a name="167239230"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Albin%27s%20thesis%20and%20presentation%28s%3F%29/near/167239230" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Weiss <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Albin&#x27;s.20thesis.20and.20presentation(s.3F).html#167239230">(Jun 03 2019 at 22:47)</a>:</h4>
<p><span class="user-mention" data-user-id="204115">@Albin Stjerna</span> if you have any questions that they can’t answer (or that you’d rather ask me anyway), I’m happy to help!</p>



<a name="167275564"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Albin%27s%20thesis%20and%20presentation%28s%3F%29/near/167275564" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanda Stjerna <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Albin&#x27;s.20thesis.20and.20presentation(s.3F).html#167275564">(Jun 04 2019 at 09:44)</a>:</h4>
<p><span class="user-mention" data-user-id="127262">@Aaron Weiss</span> Thank you! It's not urgent; the deadline for my thesis is roughly August or so, give or take 20 days, and nothing really depends on the theoretical parts, so it's not blocking anything. While you are here though, do you have any suggestions for introductory reading on type theory? They didn't do a great job of that in my programming language semantics course, and I don't really know where to start</p>



<a name="167276849"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Albin%27s%20thesis%20and%20presentation%28s%3F%29/near/167276849" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Albin&#x27;s.20thesis.20and.20presentation(s.3F).html#167276849">(Jun 04 2019 at 09:59)</a>:</h4>
<p><span class="user-mention" data-user-id="204115">@Albin Stjerna</span> <a href="https://www.cis.upenn.edu/~bcpierce/tapl/" target="_blank" title="https://www.cis.upenn.edu/~bcpierce/tapl/">https://www.cis.upenn.edu/~bcpierce/tapl/</a> is a good book if you haven't read it</p>



<a name="167277386"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Albin%27s%20thesis%20and%20presentation%28s%3F%29/near/167277386" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanda Stjerna <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Albin&#x27;s.20thesis.20and.20presentation(s.3F).html#167277386">(Jun 04 2019 at 10:05)</a>:</h4>
<p><span class="user-mention" data-user-id="126931">@centril</span> Thank you! I haven't</p>



<a name="167277470"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Albin%27s%20thesis%20and%20presentation%28s%3F%29/near/167277470" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> centril <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Albin&#x27;s.20thesis.20and.20presentation(s.3F).html#167277470">(Jun 04 2019 at 10:06)</a>:</h4>
<p><span class="user-mention" data-user-id="204115">@Albin Stjerna</span> <a href="http://www.cse.chalmers.se/edu/year/2018/course/DAT350/" target="_blank" title="http://www.cse.chalmers.se/edu/year/2018/course/DAT350/">http://www.cse.chalmers.se/edu/year/2018/course/DAT350/</a> might also be a good resource</p>



<a name="167294343"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Albin%27s%20thesis%20and%20presentation%28s%3F%29/near/167294343" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Weiss <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Albin&#x27;s.20thesis.20and.20presentation(s.3F).html#167294343">(Jun 04 2019 at 13:42)</a>:</h4>
<p>Yeah, TAPL is the classic recommendation. Though, you may also like Bob Harper’s Principles and Foundations of Programming Languages (PFPL) which I’ve read... some of.</p>



<a name="167294413"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Albin%27s%20thesis%20and%20presentation%28s%3F%29/near/167294413" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Weiss <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Albin&#x27;s.20thesis.20and.20presentation(s.3F).html#167294413">(Jun 04 2019 at 13:43)</a>:</h4>
<p>Lectures from OPLSS on YouTube could prove useful too. Every year, they have some intro stuff on type theory, logical relations, etc.</p>



<a name="167294630"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Albin%27s%20thesis%20and%20presentation%28s%3F%29/near/167294630" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Albin&#x27;s.20thesis.20and.20presentation(s.3F).html#167294630">(Jun 04 2019 at 13:45)</a>:</h4>
<p>(the OPLSS lectures are <a href="https://www.youtube.com/channel/UCDe6N9R7U-RYWA57wzJQ2SQ" target="_blank" title="https://www.youtube.com/channel/UCDe6N9R7U-RYWA57wzJQ2SQ">here</a>)</p>
<div class="youtube-video message_inline_image"><a data-id="channel" href="https://www.youtube.com/channel/UCDe6N9R7U-RYWA57wzJQ2SQ" target="_blank" title="https://www.youtube.com/channel/UCDe6N9R7U-RYWA57wzJQ2SQ"><img src="https://i.ytimg.com/vi/channel/default.jpg"></a></div>



<a name="167301029"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Albin%27s%20thesis%20and%20presentation%28s%3F%29/near/167301029" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanda Stjerna <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Albin&#x27;s.20thesis.20and.20presentation(s.3F).html#167301029">(Jun 04 2019 at 14:46)</a>:</h4>
<p>I guess I have my work cut out for me now. Thanks everyone!</p>



<a name="167461511"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Albin%27s%20thesis%20and%20presentation%28s%3F%29/near/167461511" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanda Stjerna <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Albin&#x27;s.20thesis.20and.20presentation(s.3F).html#167461511">(Jun 06 2019 at 08:22)</a>:</h4>
<p><a href="/user_uploads/4715/-SIPYnkgATvmMEMjYw5CB1dw/pasted_image.png" target="_blank" title="pasted_image.png">My (new) working title for the talk</a></p>
<div class="message_inline_image"><a href="/user_uploads/4715/-SIPYnkgATvmMEMjYw5CB1dw/pasted_image.png" target="_blank" title="My (new) working title for the talk"><img src="/user_uploads/4715/-SIPYnkgATvmMEMjYw5CB1dw/pasted_image.png"></a></div>



<a name="167554652"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Albin%27s%20thesis%20and%20presentation%28s%3F%29/near/167554652" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanda Stjerna <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Albin&#x27;s.20thesis.20and.20presentation(s.3F).html#167554652">(Jun 07 2019 at 07:32)</a>:</h4>
<p>I really appreciate the timing of the  reformulated subset relations right before the talk. "Hi err we have this formulation sort of but it doesn't work really and we have a new thing which probably does and might be faster but I didn't work on those so it's not <em>my</em> fault!"</p>



<a name="167554657"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Albin%27s%20thesis%20and%20presentation%28s%3F%29/near/167554657" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanda Stjerna <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Albin&#x27;s.20thesis.20and.20presentation(s.3F).html#167554657">(Jun 07 2019 at 07:32)</a>:</h4>
<p>(I honestly think this is funny and I'm not actually worried; it just shows the benefits of doing the reformulation in a declarative and easily iterated-on language to begin with)</p>



<a name="167830589"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Albin%27s%20thesis%20and%20presentation%28s%3F%29/near/167830589" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanda Stjerna <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Albin&#x27;s.20thesis.20and.20presentation(s.3F).html#167830589">(Jun 11 2019 at 08:41)</a>:</h4>
<p>I personally think <a href="/user_uploads/4715/SsfVehr9y4sOKQtNjs44SG-Q/pasted_image.png" target="_blank" title="pasted_image.png">this joke is the high point of my presentation</a></p>
<div class="message_inline_image"><a href="/user_uploads/4715/SsfVehr9y4sOKQtNjs44SG-Q/pasted_image.png" target="_blank" title="this joke is the high point of my presentation"><img src="/user_uploads/4715/SsfVehr9y4sOKQtNjs44SG-Q/pasted_image.png"></a></div>



<a name="167836011"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Albin%27s%20thesis%20and%20presentation%28s%3F%29/near/167836011" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanda Stjerna <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Albin&#x27;s.20thesis.20and.20presentation(s.3F).html#167836011">(Jun 11 2019 at 10:05)</a>:</h4>
<p><span class="user-group-mention" data-user-group-id="1184">@WG-polonius</span> Hi! This is a draft of my presentation for tomorrow (<a href="/user_uploads/4715/dNLl9xEXyUdnH8Xo0PObRq7H/Polonius-Presentation.pdf" target="_blank" title="Polonius-Presentation.pdf">animated</a>, <a href="/user_uploads/4715/RJVvTwYd2DjOXTOisFiGbkqD/Polonius-Presentation-no-animations.pdf" target="_blank" title="Polonius-Presentation-no-animations.pdf">no animations</a>). I'd like some feedback if you have the time, in particular on terminology and technical details of my examples to make sure I'm not completely off.</p>



<a name="167836022"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Albin%27s%20thesis%20and%20presentation%28s%3F%29/near/167836022" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanda Stjerna <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Albin&#x27;s.20thesis.20and.20presentation(s.3F).html#167836022">(Jun 11 2019 at 10:05)</a>:</h4>
<p>(I might have to axe some things)</p>



<a name="167838468"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Albin%27s%20thesis%20and%20presentation%28s%3F%29/near/167838468" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanda Stjerna <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Albin&#x27;s.20thesis.20and.20presentation(s.3F).html#167838468">(Jun 11 2019 at 10:46)</a>:</h4>
<p>Update: nope, I'm within my time budget if I don't go overboard explaining the datalog</p>



<a name="167838490"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Albin%27s%20thesis%20and%20presentation%28s%3F%29/near/167838490" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanda Stjerna <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Albin&#x27;s.20thesis.20and.20presentation(s.3F).html#167838490">(Jun 11 2019 at 10:47)</a>:</h4>
<p>Also I think I might have overdone a) the Hamlet references and b) the number of animations</p>



<a name="167874802"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Albin%27s%20thesis%20and%20presentation%28s%3F%29/near/167874802" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Albin&#x27;s.20thesis.20and.20presentation(s.3F).html#167874802">(Jun 11 2019 at 18:08)</a>:</h4>
<p>looks good to me:)</p>



<a name="167875021"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Albin%27s%20thesis%20and%20presentation%28s%3F%29/near/167875021" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Albin&#x27;s.20thesis.20and.20presentation(s.3F).html#167875021">(Jun 11 2019 at 18:10)</a>:</h4>
<p>(same for me :)</p>



<a name="167950229"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Albin%27s%20thesis%20and%20presentation%28s%3F%29/near/167950229" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanda Stjerna <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Albin&#x27;s.20thesis.20and.20presentation(s.3F).html#167950229">(Jun 12 2019 at 14:07)</a>:</h4>
<p>Thanks! I survived the presentation and I think it went all right. Though the person after me introduced Soufflé, Doop, and Datalog itself so the ordering could perhaps have been better.</p>



<a name="167950317"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Albin%27s%20thesis%20and%20presentation%28s%3F%29/near/167950317" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanda Stjerna <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Albin&#x27;s.20thesis.20and.20presentation(s.3F).html#167950317">(Jun 12 2019 at 14:08)</a>:</h4>
<p>I could really have used that in my presentation in stead of just saying “this is what Datalog looks like but I don’t have time to explain the details”</p>



<a name="174885610"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Albin%27s%20thesis%20and%20presentation%28s%3F%29/near/174885610" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanda Stjerna <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Albin&#x27;s.20thesis.20and.20presentation(s.3F).html#174885610">(Sep 04 2019 at 14:12)</a>:</h4>
<p><span class="user-mention" data-user-id="127262">@Aaron Weiss</span> I have a question about Oxide, if you have the time. Reading the type inference rules, I don't understand how the unification of reference types upon assignment (T-Assign) works. As I understand the assignment rule, it starts given a statement <code>x = y</code> where x, y are references, require that x and y unify as a prerequisite, and some evaluation of the RHS (which I'm not concerned with due to MIR). That makes sense to me. However, as I understand it, the type unification would merge the LHS and RHS' provenance variables into the resulting type tau-n, which I never see used again anywhere in the rule, and then update the mapping to...what? I would have expected the substitution-yielding subtyping of T-Let in stead.</p>



<a name="174885683"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Albin%27s%20thesis%20and%20presentation%28s%3F%29/near/174885683" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanda Stjerna <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Albin&#x27;s.20thesis.20and.20presentation(s.3F).html#174885683">(Sep 04 2019 at 14:13)</a>:</h4>
<p>(I am basically trying to find the part of Oxide I need to prod to find the subtyping rule of Niko's first blog entry, in order to get to Polonius)</p>



<a name="174928558"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Albin%27s%20thesis%20and%20presentation%28s%3F%29/near/174928558" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Weiss <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Albin&#x27;s.20thesis.20and.20presentation(s.3F).html#174928558">(Sep 04 2019 at 22:27)</a>:</h4>
<p><span class="user-mention" data-user-id="204115">@Albin Stjerna</span> you're asking pretty directly about the parts that were broken before, and that have (hopefully) been fixed in the latest version of Oxide. There's still unfortunately a bunch of work to be done though before we push out an updated draft. :\</p>



<a name="174948563"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Albin%27s%20thesis%20and%20presentation%28s%3F%29/near/174948563" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanda Stjerna <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Albin&#x27;s.20thesis.20and.20presentation(s.3F).html#174948563">(Sep 05 2019 at 06:32)</a>:</h4>
<p><span class="user-mention" data-user-id="127262">@Aaron Weiss</span> but that should be the same as in Polonius right? What I don’t understand (I think) is how a) variable liveness (and therefore loan liveness) comes into play and b) how loans ever get removed from provenance variables (corresponding to Polonius’ killed fact).</p>



<a name="174948583"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Albin%27s%20thesis%20and%20presentation%28s%3F%29/near/174948583" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanda Stjerna <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Albin&#x27;s.20thesis.20and.20presentation(s.3F).html#174948583">(Sep 05 2019 at 06:33)</a>:</h4>
<p>What I’m trying to do is to hand-wave a bit and say “look Oxide is roughly the same as Polonius”</p>



<a name="174948705"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Albin%27s%20thesis%20and%20presentation%28s%3F%29/near/174948705" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanda Stjerna <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Albin&#x27;s.20thesis.20and.20presentation(s.3F).html#174948705">(Sep 05 2019 at 06:36)</a>:</h4>
<p>Perhaps I should be looking at the operational semantics in stead, but I wanted to understand the typing judgements first.</p>



<a name="174958760"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Albin%27s%20thesis%20and%20presentation%28s%3F%29/near/174958760" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanda Stjerna <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Albin&#x27;s.20thesis.20and.20presentation(s.3F).html#174958760">(Sep 05 2019 at 09:47)</a>:</h4>
<p>I can make the question somewhat simpler though; <a href="/user_uploads/4715/ixijL69e6wfWE93nE8lry8mY/pasted_image.png" target="_blank" title="pasted_image.png">in this rule, what happens to tau-n and where does tau come from?</a></p>
<div class="message_inline_image"><a href="/user_uploads/4715/ixijL69e6wfWE93nE8lry8mY/pasted_image.png" target="_blank" title="in this rule, what happens to tau-n and where does tau come from?"><img src="/user_uploads/4715/ixijL69e6wfWE93nE8lry8mY/pasted_image.png"></a></div>



<a name="174977443"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Albin%27s%20thesis%20and%20presentation%28s%3F%29/near/174977443" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Weiss <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Albin&#x27;s.20thesis.20and.20presentation(s.3F).html#174977443">(Sep 05 2019 at 14:15)</a>:</h4>
<p>\tau_n is ignored because it's really using unification there as a sort of type compatibility, rather than actually caring about the result. Choosing to use \tau_u in places-typ is essentially how you end up killing the loans that were present in \tau_o (\tau_n would contain loans from both \tau_u and \tau_o). The \tau is actually \overline{\tau} and comes from computing places-typ there.</p>



<a name="174977593"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Albin%27s%20thesis%20and%20presentation%28s%3F%29/near/174977593" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Weiss <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Albin&#x27;s.20thesis.20and.20presentation(s.3F).html#174977593">(Sep 05 2019 at 14:16)</a>:</h4>
<p>In actuality though, this setup was confusing, and we've since changed it to more directly reflect this kind of "overwriting" behavior (as compared to the combining behavior that is present in the other uses of unification).</p>



<a name="174977627"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Albin%27s%20thesis%20and%20presentation%28s%3F%29/near/174977627" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Weiss <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Albin&#x27;s.20thesis.20and.20presentation(s.3F).html#174977627">(Sep 05 2019 at 14:16)</a>:</h4>
<p>So, in my latest (internal) draft, the rule doesn't quite look the same.</p>



<a name="174977640"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Albin%27s%20thesis%20and%20presentation%28s%3F%29/near/174977640" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Weiss <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Albin&#x27;s.20thesis.20and.20presentation(s.3F).html#174977640">(Sep 05 2019 at 14:16)</a>:</h4>
<p><a href="/user_uploads/4715/KRVjquTdWSTInbFr-0Yr1TGn/pasted_image.png" target="_blank" title="pasted_image.png">It looks like this.</a></p>
<div class="message_inline_image"><a href="/user_uploads/4715/KRVjquTdWSTInbFr-0Yr1TGn/pasted_image.png" target="_blank" title="It looks like this."><img src="/user_uploads/4715/KRVjquTdWSTInbFr-0Yr1TGn/pasted_image.png"></a></div>



<a name="174977822"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Albin%27s%20thesis%20and%20presentation%28s%3F%29/near/174977822" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Weiss <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Albin&#x27;s.20thesis.20and.20presentation(s.3F).html#174977822">(Sep 05 2019 at 14:18)</a>:</h4>
<p>the \mathcal{L}^\prime - \mathcal{p} there (and the fact that the unification judgment, now written &lt;~, uses the overwrite (-) mode)  is more-or-less how we've implemented the kill rules.</p>



<a name="174977882"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Albin%27s%20thesis%20and%20presentation%28s%3F%29/near/174977882" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Weiss <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Albin&#x27;s.20thesis.20and.20presentation(s.3F).html#174977882">(Sep 05 2019 at 14:19)</a>:</h4>
<p>But like I said, there's still a bunch more work that I have to do before we actually push a whole updated thing (though I hope that we're finally closing in on something that is good overall).</p>



<a name="175047328"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Albin%27s%20thesis%20and%20presentation%28s%3F%29/near/175047328" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanda Stjerna <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Albin&#x27;s.20thesis.20and.20presentation(s.3F).html#175047328">(Sep 06 2019 at 09:05)</a>:</h4>
<p><span class="user-mention" data-user-id="127262">@Aaron Weiss</span> I see, thank you. So what happens is that you first use unification to verify that the types of the assignment are compatible (e.g., I'm not trying to assign a tuple to an integer), and it doesn't modify the provenance variables. That makes sense to me.</p>
<p>Ok, so then I just don't fully understand places-typ(pi, tau-u). I get that it expands to all paths rooted in pi and would return a set, which you use to update gamma with the new mapping and kill the old loans. I don't get where the new mapping is introduced, or what it is mapping to. I guess you want it to expand to pi's old mappings before assignment in order to catch the paths you want to overwrite?</p>



<a name="175047331"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Albin%27s%20thesis%20and%20presentation%28s%3F%29/near/175047331" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanda Stjerna <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Albin&#x27;s.20thesis.20and.20presentation(s.3F).html#175047331">(Sep 06 2019 at 09:05)</a>:</h4>
<p>(Sorry for all the questions!)</p>



<a name="175065565"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Albin%27s%20thesis%20and%20presentation%28s%3F%29/near/175065565" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanda Stjerna <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Albin&#x27;s.20thesis.20and.20presentation(s.3F).html#175065565">(Sep 06 2019 at 13:45)</a>:</h4>
<p><span class="user-group-mention" data-user-group-id="1184">@WG-polonius</span>  I now have a draft version of my thesis that I'm not completely embarrassed by and would appreciate any and all feedback on! In particular, I would appreciate feedback on technical aspects. Also, I apologize in advance for mangling the very pretty Oxide typing judgements.</p>
<p><a href="/user_uploads/4715/ufu5BGNrkzVbV8FtkK3Tco6M/Albins-Thesis-draft-version.pdf" target="_blank" title="Albins-Thesis-draft-version.pdf">Albins-Thesis-draft-version.pdf</a></p>



<a name="175065700"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Albin%27s%20thesis%20and%20presentation%28s%3F%29/near/175065700" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanda Stjerna <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Albin&#x27;s.20thesis.20and.20presentation(s.3F).html#175065700">(Sep 06 2019 at 13:46)</a>:</h4>
<p>(It doesn't have the final numbers of my benchmarking re-run, but they should look like the ones in the current version)</p>



<a name="175095902"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Albin%27s%20thesis%20and%20presentation%28s%3F%29/near/175095902" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Weiss <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Albin&#x27;s.20thesis.20and.20presentation(s.3F).html#175095902">(Sep 06 2019 at 19:27)</a>:</h4>
<p><span class="user-mention" data-user-id="204115">@Albin Stjerna</span> an in-text citation hygiene thing: you should probably just write four authors last names instead of writing three authors last names and "et. al."</p>



<a name="175095971"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Albin%27s%20thesis%20and%20presentation%28s%3F%29/near/175095971" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Weiss <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Albin&#x27;s.20thesis.20and.20presentation(s.3F).html#175095971">(Sep 06 2019 at 19:28)</a>:</h4>
<p>Also, if you do want to make the typing rules a bit cleaner: you can add <code>\,</code> <code>\;</code> and <code>\ </code> as spacing characters that will actually be rendered in math mode.</p>



<a name="175096333"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Albin%27s%20thesis%20and%20presentation%28s%3F%29/near/175096333" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanda Stjerna <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Albin&#x27;s.20thesis.20and.20presentation(s.3F).html#175096333">(Sep 06 2019 at 19:33)</a>:</h4>
<p>Thank you; I'll look into both of them. All named citations are from \citeauthor, but you can probably tweak how many authors it lets through</p>



<a name="175097596"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Albin%27s%20thesis%20and%20presentation%28s%3F%29/near/175097596" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Tshepang Lekhonkhobe <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Albin&#x27;s.20thesis.20and.20presentation(s.3F).html#175097596">(Sep 06 2019 at 19:48)</a>:</h4>
<blockquote>
<p><span class="user-group-mention" data-user-group-id="1184">@WG-polonius</span>  I now have a draft version of my thesis that I'm not completely embarrassed by and would appreciate any and all feedback on! In particular, I would appreciate feedback on technical aspects. Also, I apologize in advance for mangling the very pretty Oxide typing judgements.</p>
<p><a href="/user_uploads/4715/ufu5BGNrkzVbV8FtkK3Tco6M/Albins-Thesis-draft-version.pdf" target="_blank" title="Albins-Thesis-draft-version.pdf">Albins-Thesis-draft-version.pdf</a></p>
</blockquote>
<p>I see figure 2.1 and listing 2.1 are mixed up with each other</p>



<a name="175097740"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Albin%27s%20thesis%20and%20presentation%28s%3F%29/near/175097740" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Tshepang Lekhonkhobe <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Albin&#x27;s.20thesis.20and.20presentation(s.3F).html#175097740">(Sep 06 2019 at 19:50)</a>:</h4>
<p>same with figure 2.2 and listing 2.2</p>



<a name="175099220"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Albin%27s%20thesis%20and%20presentation%28s%3F%29/near/175099220" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Aaron Weiss <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Albin&#x27;s.20thesis.20and.20presentation(s.3F).html#175099220">(Sep 06 2019 at 20:09)</a>:</h4>
<p><span class="user-mention" data-user-id="204115">@Albin Stjerna</span> I'll try to make some time to read the whole thing soon and send you some feedback if I can.</p>



<a name="175127995"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Albin%27s%20thesis%20and%20presentation%28s%3F%29/near/175127995" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanda Stjerna <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Albin&#x27;s.20thesis.20and.20presentation(s.3F).html#175127995">(Sep 07 2019 at 06:33)</a>:</h4>
<blockquote>
<p><span class="user-mention silent" data-user-id="204115">Albin Stjerna</span> I'll try to make some time to read the whole thing soon and send you some feedback if I can.</p>
</blockquote>
<p>Thank you! :)</p>



<a name="176969253"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Albin%27s%20thesis%20and%20presentation%28s%3F%29/near/176969253" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanda Stjerna <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Albin&#x27;s.20thesis.20and.20presentation(s.3F).html#176969253">(Sep 30 2019 at 20:10)</a>:</h4>
<p>Update: I presented today. I don't think my opponent, an electrical engineer who hasn't taken a compilers course and who clearly didn't spend a lot of time preparing questions (the first one was "what real-world problem does this solve?"), ever understood most of it, but people ate the cookies I made, laughed at most of the jokes, and nobody threw tomatoes so overall I think it went all right.</p>



<a name="177024942"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Albin%27s%20thesis%20and%20presentation%28s%3F%29/near/177024942" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Tshepang Lekhonkhobe <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Albin&#x27;s.20thesis.20and.20presentation(s.3F).html#177024942">(Oct 01 2019 at 05:36)</a>:</h4>
<p>what is <em>opponent</em> <span class="user-mention" data-user-id="204115">@Albin Stjerna</span></p>



<a name="177027054"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Albin%27s%20thesis%20and%20presentation%28s%3F%29/near/177027054" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanda Stjerna <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Albin&#x27;s.20thesis.20and.20presentation(s.3F).html#177027054">(Oct 01 2019 at 06:22)</a>:</h4>
<p><span class="user-mention" data-user-id="119529">@Tshepang Lekhonkhobe</span>: basically another student who is responsible for reading my thesis draft, give me feedback on it and prepare questions for my presentation.</p>



<a name="177073620"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Albin%27s%20thesis%20and%20presentation%28s%3F%29/near/177073620" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Albin&#x27;s.20thesis.20and.20presentation(s.3F).html#177073620">(Oct 01 2019 at 16:42)</a>:</h4>
<p>I've finally read the thesis, pretty cool. The stats parts was interesting to get an idea of somewhat typical inputs <span aria-label="thumbs up" class="emoji emoji-1f44d" role="img" title="thumbs up">:thumbs_up:</span></p>



<a name="178115279"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Albin%27s%20thesis%20and%20presentation%28s%3F%29/near/178115279" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Albin&#x27;s.20thesis.20and.20presentation(s.3F).html#178115279">(Oct 14 2019 at 15:56)</a>:</h4>
<p><span class="user-mention" data-user-id="204115">@Albin Stjerna</span> pg 33 you say "we also excluded all functions that had no loans at all fromthe analysis, a surprisingly large portion; almost47%. ", is this data in your 3 078 110 lines (500MB) repo-stats.csv files you once shared with me ? (I ask because I'm seeing 63%)</p>



<a name="178116076"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Albin%27s%20thesis%20and%20presentation%28s%3F%29/near/178116076" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanda Stjerna <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Albin&#x27;s.20thesis.20and.20presentation(s.3F).html#178116076">(Oct 14 2019 at 16:06)</a>:</h4>
<p><span class="user-mention" data-user-id="116113">@lqd</span> I think I re-ran the analysis since then, but I think so</p>



<a name="178116090"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Albin%27s%20thesis%20and%20presentation%28s%3F%29/near/178116090" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanda Stjerna <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Albin&#x27;s.20thesis.20and.20presentation(s.3F).html#178116090">(Oct 14 2019 at 16:06)</a>:</h4>
<p>I remember that the numbers changed anyway</p>



<a name="178116112"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Albin%27s%20thesis%20and%20presentation%28s%3F%29/near/178116112" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Albin&#x27;s.20thesis.20and.20presentation(s.3F).html#178116112">(Oct 14 2019 at 16:07)</a>:</h4>
<p>is this new csv available somewhere btw ?</p>



<a name="178116154"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Albin%27s%20thesis%20and%20presentation%28s%3F%29/near/178116154" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanda Stjerna <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Albin&#x27;s.20thesis.20and.20presentation(s.3F).html#178116154">(Oct 14 2019 at 16:07)</a>:</h4>
<p>Err, possibly</p>



<a name="178116242"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Albin%27s%20thesis%20and%20presentation%28s%3F%29/near/178116242" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Albin&#x27;s.20thesis.20and.20presentation(s.3F).html#178116242">(Oct 14 2019 at 16:09)</a>:</h4>
<p>(as I'm also planning some day to look at the slowest / biggest functions there, probably <code>rust-aaplus</code> or something)</p>



<a name="178116244"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Albin%27s%20thesis%20and%20presentation%28s%3F%29/near/178116244" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanda Stjerna <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Albin&#x27;s.20thesis.20and.20presentation(s.3F).html#178116244">(Oct 14 2019 at 16:09)</a>:</h4>
<p>How did I send it last time?</p>



<a name="178116264"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Albin%27s%20thesis%20and%20presentation%28s%3F%29/near/178116264" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanda Stjerna <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Albin&#x27;s.20thesis.20and.20presentation(s.3F).html#178116264">(Oct 14 2019 at 16:09)</a>:</h4>
<div class="codehilite"><pre><span></span>$ wc -l repo-stats.csv
 3939484 repo-stats.csv
$ du -h repo-stats.csv
663M    repo-stats.csv
</pre></div>



<a name="178116392"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Albin%27s%20thesis%20and%20presentation%28s%3F%29/near/178116392" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Albin&#x27;s.20thesis.20and.20presentation(s.3F).html#178116392">(Oct 14 2019 at 16:11)</a>:</h4>
<p>here <a href="#narrow/stream/186049-t-compiler.2Fwg-polonius/topic/performance/near/171462851" title="#narrow/stream/186049-t-compiler.2Fwg-polonius/topic/performance/near/171462851">https://rust-lang.zulipchat.com/#narrow/stream/186049-t-compiler.2Fwg-polonius/topic/performance/near/171462851</a></p>



<a name="178116446"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Albin%27s%20thesis%20and%20presentation%28s%3F%29/near/178116446" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Albin&#x27;s.20thesis.20and.20presentation(s.3F).html#178116446">(Oct 14 2019 at 16:12)</a>:</h4>
<p>yeah seems like a newer one, 800K more functions or so</p>



<a name="178116529"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Albin%27s%20thesis%20and%20presentation%28s%3F%29/near/178116529" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanda Stjerna <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Albin&#x27;s.20thesis.20and.20presentation(s.3F).html#178116529">(Oct 14 2019 at 16:12)</a>:</h4>
<p>I'm uploading it now! :)</p>



<a name="178116583"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Albin%27s%20thesis%20and%20presentation%28s%3F%29/near/178116583" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Albin&#x27;s.20thesis.20and.20presentation(s.3F).html#178116583">(Oct 14 2019 at 16:13)</a>:</h4>
<p>awesome, thank you</p>



<a name="178116639"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Albin%27s%20thesis%20and%20presentation%28s%3F%29/near/178116639" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Albin&#x27;s.20thesis.20and.20presentation(s.3F).html#178116639">(Oct 14 2019 at 16:14)</a>:</h4>
<p>the biggest outliers probably haven't changed since then though ?</p>



<a name="178116675"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Albin%27s%20thesis%20and%20presentation%28s%3F%29/near/178116675" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanda Stjerna <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Albin&#x27;s.20thesis.20and.20presentation(s.3F).html#178116675">(Oct 14 2019 at 16:14)</a>:</h4>
<p>Probably not, but let's find out!</p>



<a name="178117177"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Albin%27s%20thesis%20and%20presentation%28s%3F%29/near/178117177" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Albin&#x27;s.20thesis.20and.20presentation(s.3F).html#178117177">(Oct 14 2019 at 16:21)</a>:</h4>
<p>I had</p>
<div class="codehilite"><pre><span></span>highest `borrow_region`: 4049 - imgui-ext parser-emmit_tag_tokens
highest `cfg_edge`: 308072 - fastcmp {{impl}}-feq
highest `invalidates`: 4518016 - capstone-rs {{impl}}[528]-fmt
highest `killed`: 1790 - imgui-ext parser-emmit_tag_tokens
highest `regions`: 41175 - gleam ffi-{{impl}}[1]-load_with
highest `cfg nodes`: 21678 - fastcmp {{impl}}-feq

highest `min(3) Naive runtime`: 779.1390095889801 - rust-aaplus aaelp2000-G_ELP10
highest `min(3) Hybrid runtime`: 777.7702879499411 - rust-aaplus aaelp2000-G_ELP10
highest `min(3) DatafrogOpt runtime`: 768.0480983849848 - rust-aaplus aaelp2000-G_ELP10
</pre></div>



<a name="178117314"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Albin%27s%20thesis%20and%20presentation%28s%3F%29/near/178117314" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanda Stjerna <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Albin&#x27;s.20thesis.20and.20presentation(s.3F).html#178117314">(Oct 14 2019 at 16:23)</a>:</h4>
<p><a href="https://we.tl/t-cdzolRegZi" target="_blank" title="https://we.tl/t-cdzolRegZi">https://we.tl/t-cdzolRegZi</a></p>



<a name="178117319"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Albin%27s%20thesis%20and%20presentation%28s%3F%29/near/178117319" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanda Stjerna <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Albin&#x27;s.20thesis.20and.20presentation(s.3F).html#178117319">(Oct 14 2019 at 16:23)</a>:</h4>
<p>There, the new one</p>



<a name="178117337"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Albin%27s%20thesis%20and%20presentation%28s%3F%29/near/178117337" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Albin&#x27;s.20thesis.20and.20presentation(s.3F).html#178117337">(Oct 14 2019 at 16:23)</a>:</h4>
<p>thanks a bunch</p>



<a name="178117584"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Albin%27s%20thesis%20and%20presentation%28s%3F%29/near/178117584" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Albin&#x27;s.20thesis.20and.20presentation(s.3F).html#178117584">(Oct 14 2019 at 16:27)</a>:</h4>
<p>your loans and borrow_regions columns seem ... strange ? how are you computing loans ?</p>



<a name="178117681"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Albin%27s%20thesis%20and%20presentation%28s%3F%29/near/178117681" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Albin&#x27;s.20thesis.20and.20presentation(s.3F).html#178117681">(Oct 14 2019 at 16:29)</a>:</h4>
<p>(or maybe the columns changed between the two, I'll check that haha)</p>



<a name="178117726"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Albin%27s%20thesis%20and%20presentation%28s%3F%29/near/178117726" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Albin&#x27;s.20thesis.20and.20presentation(s.3F).html#178117726">(Oct 14 2019 at 16:29)</a>:</h4>
<p>ah yes ofc it was that, sneaky :)</p>



<a name="178118440"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Albin%27s%20thesis%20and%20presentation%28s%3F%29/near/178118440" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Albin&#x27;s.20thesis.20and.20presentation(s.3F).html#178118440">(Oct 14 2019 at 16:38)</a>:</h4>
<p>(still looks like 60+% without loans, most likely const/statics/promoted)</p>



<a name="178118480"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Albin%27s%20thesis%20and%20presentation%28s%3F%29/near/178118480" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Albin&#x27;s.20thesis.20and.20presentation(s.3F).html#178118480">(Oct 14 2019 at 16:38)</a>:</h4>
<p>slowest seem to be in <code>rust-unic</code> now though, only 295</p>



<a name="178118505"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Albin%27s%20thesis%20and%20presentation%28s%3F%29/near/178118505" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Albin&#x27;s.20thesis.20and.20presentation(s.3F).html#178118505">(Oct 14 2019 at 16:39)</a>:</h4>
<p>aaplus must have OOM-ed :)</p>



<a name="178118876"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Albin%27s%20thesis%20and%20presentation%28s%3F%29/near/178118876" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Albin&#x27;s.20thesis.20and.20presentation(s.3F).html#178118876">(Oct 14 2019 at 16:43)</a>:</h4>
<p>loving the <code>highest universal_region: 125 - gll parse_grammar-{{impl}}[49]-all-{{closure}}[1]</code> auto generated code</p>



<a name="178119290"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Albin%27s%20thesis%20and%20presentation%28s%3F%29/near/178119290" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Albin&#x27;s.20thesis.20and.20presentation(s.3F).html#178119290">(Oct 14 2019 at 16:49)</a>:</h4>
<p>/me blinks at highest cfg_edge: 2152391 - zip_codes ZIP_CODES</p>



<a name="178129768"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Albin%27s%20thesis%20and%20presentation%28s%3F%29/near/178129768" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanda Stjerna <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Albin&#x27;s.20thesis.20and.20presentation(s.3F).html#178129768">(Oct 14 2019 at 19:10)</a>:</h4>
<p>Yes there are a few...odd ones there</p>



<a name="178461067"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Albin%27s%20thesis%20and%20presentation%28s%3F%29/near/178461067" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanda Stjerna <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Albin&#x27;s.20thesis.20and.20presentation(s.3F).html#178461067">(Oct 18 2019 at 10:21)</a>:</h4>
<p>Ok, so as I mentioned, Tobias wasn't happy with my thesis. The sunny side of this is that one of the things he came down on really hard was my use of Stupid Jargon (my words), and with some luck one of the things I will produce is very concrete examples for when facts are emitted in a (hopefully) human-readable format. Which is, I guess, great for Polonius documentation, and also makes it worth putting some effort into</p>



<a name="178461280"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Albin%27s%20thesis%20and%20presentation%28s%3F%29/near/178461280" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanda Stjerna <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Albin&#x27;s.20thesis.20and.20presentation(s.3F).html#178461280">(Oct 18 2019 at 10:25)</a>:</h4>
<p>I also have a question about MIR that's been bugging me. So it says in the RFC that MIR is "static single assignment except for borrow expressions", but as far as I can tell it's not at all in SSA form. Assigning to the same variable multiple times does not introduce more temporaries?</p>



<a name="179346355"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Albin%27s%20thesis%20and%20presentation%28s%3F%29/near/179346355" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanda Stjerna <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Albin&#x27;s.20thesis.20and.20presentation(s.3F).html#179346355">(Oct 29 2019 at 16:25)</a>:</h4>
<p>As part of clearing up my thesis, I have made a table of the facts I currently use, with examples. Does anyone see anything wrong with it? <a href="/user_uploads/4715/MB9lLXq_tvTPgBqgFBGnqwUt/pasted_image.png" target="_blank" title="pasted_image.png">pasted image</a></p>
<div class="message_inline_image"><a href="/user_uploads/4715/MB9lLXq_tvTPgBqgFBGnqwUt/pasted_image.png" target="_blank" title="pasted image"><img src="/user_uploads/4715/MB9lLXq_tvTPgBqgFBGnqwUt/pasted_image.png"></a></div>



<a name="179348732"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Albin%27s%20thesis%20and%20presentation%28s%3F%29/near/179348732" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> lqd <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Albin&#x27;s.20thesis.20and.20presentation(s.3F).html#179348732">(Oct 29 2019 at 16:49)</a>:</h4>
<p>(at a glance, I think <code>killed</code> and <code>invalidates</code> <em>may be</em> too similar, it's not about the same loans IIRC)</p>



<a name="179360112"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Albin%27s%20thesis%20and%20presentation%28s%3F%29/near/179360112" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanda Stjerna <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Albin&#x27;s.20thesis.20and.20presentation(s.3F).html#179360112">(Oct 29 2019 at 18:35)</a>:</h4>
<p>I <em>am</em> having some trouble keeping them apart, but you mean for pedagogical reasons?</p>



<a name="179360195"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Albin%27s%20thesis%20and%20presentation%28s%3F%29/near/179360195" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanda Stjerna <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Albin&#x27;s.20thesis.20and.20presentation(s.3F).html#179360195">(Oct 29 2019 at 18:35)</a>:</h4>
<p>Honestly I realised I didn't fully understand <code>killed</code>, and had to try some different versions of the same code to get a feeling for it</p>



<a name="179435684"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Albin%27s%20thesis%20and%20presentation%28s%3F%29/near/179435684" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanda Stjerna <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Albin&#x27;s.20thesis.20and.20presentation(s.3F).html#179435684">(Oct 30 2019 at 14:13)</a>:</h4>
<p>Ok, I think I understand. However, I don't really understand what loan would be <code>killed</code> in this case, the one of <code>x</code>or the one of <code>y</code>?:</p>
<div class="codehilite"><pre><span></span><span class="kd">let</span><span class="w"> </span><span class="n">r</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="o">&amp;</span><span class="k">mut</span><span class="w"> </span><span class="n">x</span><span class="p">;</span><span class="w"></span>
<span class="k">if</span><span class="w"> </span><span class="n">random</span><span class="p">()</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
<span class="w">    </span><span class="n">r</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="o">&amp;</span><span class="k">mut</span><span class="w"> </span><span class="n">y</span><span class="p">;</span><span class="w"></span>
<span class="p">}</span><span class="w"></span>
<span class="n">r</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="o">&amp;</span><span class="k">mut</span><span class="w"> </span><span class="n">z</span><span class="p">;</span><span class="w"></span>
</pre></div>


<p>Looking at the actual MIR and Polonius facts for that case, the shuffling and re-borrowing makes me have a hard time figuring out what's going on.</p>



<a name="179468983"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Albin%27s%20thesis%20and%20presentation%28s%3F%29/near/179468983" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Matthew Jasper <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Albin&#x27;s.20thesis.20and.20presentation(s.3F).html#179468983">(Oct 30 2019 at 19:37)</a>:</h4>
<p>The case where <code>killed</code> facts actually matter is something like</p>
<div class="codehilite"><pre><span></span><span class="kd">let</span><span class="w"> </span><span class="k">mut</span><span class="w"> </span><span class="n">x</span>: <span class="nc">T</span><span class="p">;</span><span class="w"></span>
<span class="kd">let</span><span class="w"> </span><span class="n">r</span>: <span class="kp">&amp;</span><span class="nc">mut</span><span class="w"> </span><span class="n">T</span><span class="p">;</span><span class="w"></span>
<span class="kd">let</span><span class="w"> </span><span class="n">s</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="o">&amp;</span><span class="k">mut</span><span class="w"> </span><span class="o">*</span><span class="n">r</span><span class="p">;</span><span class="w"></span>
<span class="n">r</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="o">&amp;</span><span class="k">mut</span><span class="w"> </span><span class="n">x</span><span class="p">;</span><span class="w">          </span><span class="c1">// Kills the loan on the line above.</span>
</pre></div>



<a name="179469095"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Albin%27s%20thesis%20and%20presentation%28s%3F%29/near/179469095" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Matthew Jasper <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Albin&#x27;s.20thesis.20and.20presentation(s.3F).html#179469095">(Oct 30 2019 at 19:39)</a>:</h4>
<p>They're generated in a lot of other cases as well, but usually if there's a live loan that's killed it's also invalidated, which results in an error.</p>



<a name="179611741"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Albin%27s%20thesis%20and%20presentation%28s%3F%29/near/179611741" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanda Stjerna <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Albin&#x27;s.20thesis.20and.20presentation(s.3F).html#179611741">(Nov 01 2019 at 09:44)</a>:</h4>
<p>Ok, so it basically covers some cases but not all. I see!</p>



<a name="179611748"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Albin%27s%20thesis%20and%20presentation%28s%3F%29/near/179611748" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanda Stjerna <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Albin&#x27;s.20thesis.20and.20presentation(s.3F).html#179611748">(Nov 01 2019 at 09:44)</a>:</h4>
<p>(I have precisely that example in my thesis)</p>



<a name="179611750"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Albin%27s%20thesis%20and%20presentation%28s%3F%29/near/179611750" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanda Stjerna <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Albin&#x27;s.20thesis.20and.20presentation(s.3F).html#179611750">(Nov 01 2019 at 09:44)</a>:</h4>
<p>Thank you!</p>



<a name="179620597"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/186049-t-compiler/wg-polonius/topic/Albin%27s%20thesis%20and%20presentation%28s%3F%29/near/179620597" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Amanda Stjerna <a href="https://rust-lang.github.io/zulip_archive/stream/186049-t-compiler/wg-polonius/topic/Albin&#x27;s.20thesis.20and.20presentation(s.3F).html#179620597">(Nov 01 2019 at 12:15)</a>:</h4>
<p>Me: "Oh no I'm really behind on the work on my thesis"<br>
Also me: <a href="/user_uploads/4715/cIUxhLaDuZyFXD58iKotML6a/pasted_image.png" target="_blank" title="pasted_image.png">pasted image</a></p>
<div class="message_inline_image"><a href="/user_uploads/4715/cIUxhLaDuZyFXD58iKotML6a/pasted_image.png" target="_blank" title="pasted image"><img src="/user_uploads/4715/cIUxhLaDuZyFXD58iKotML6a/pasted_image.png"></a></div>



<hr><p>Last updated: Aug 07 2021 at 22:04 UTC</p>
</html>